<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow: Class Hierarchy</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle"><div class="title">Class Hierarchy</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">
<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__blob.html" target="_self">flow::util::Basic_blob&lt; Allocator, S_SHARING_ALLOWED &gt;</a></td><td class="desc">A hand-optimized and API-tweaked replacement for <code>vector&lt;uint8_t&gt;</code>, i.e., buffer of bytes inside an allocated area of equal or larger size; also optionally supports limited garbage-collected memory pool functionality and SHM-friendly custom-allocator support </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__blob.html" target="_self">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" target="_self">flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;</a></td><td class="desc"><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off </td></tr>
<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>std::basic_string_view&lt; Char &gt;</b></td><td class="desc">STL class </td></tr>
<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Basic__string__view.html" target="_self">flow::util::Basic_string_view&lt; Ch, Traits &gt;</a></td><td class="desc">Essentially alias for a C++17-conforming string-view class template, which is a very lightweight <code>std::string</code>-like representation of a character sequence already in memory </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Checkpointing__timer_1_1Checkpoint.html" target="_self">flow::perf::Checkpointing_timer::Checkpoint</a></td><td class="desc">The entirety of the information recorded with each <a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html#a9e6078df059d5626ab5774f0a33fbad7" title="Records a checkpoint, which takes a sample of all enabled Clock_types&#39; clocks and records the corresp...">Checkpointing_timer::checkpoint()</a> call; it contains the <code>Duration</code> values (for each <code>Clock_type</code>) with the time elapsed since either the preceding <code>T.checkpoint()</code> or construction </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Component.html" target="_self">flow::log::Component</a></td><td class="desc">A light-weight class, each object storing a <em>component</em> payload encoding an <code>enum</code> value from <code>enum</code> type of user's choice, and a light-weight ID of that <code>enum</code> type itself </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Config.html" target="_self">flow::log::Config</a></td><td class="desc">Class used to configure the filtering and logging behavior of <code><a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a></code>s; its use in your custom <code><a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a></code>s is optional but encouraged; supports dynamically changing filter settings even while concurrent logging occurs </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits.html" target="_self">flow::util::Container_traits&lt; Container &gt;</a></td><td class="desc">Properties of various container types </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01boost_1_1unordered__set_3_01T_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; boost::unordered_set&lt; T &gt; &gt;</a></td><td class="desc">Traits of <code>boost::unordered_set</code> </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01std_1_1map_3_01K_00_01V_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; std::map&lt; K, V &gt; &gt;</a></td><td class="desc">Traits of <code>std::map</code> </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01std_1_1set_3_01T_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; std::set&lt; T &gt; &gt;</a></td><td class="desc">Traits of <code>std::set</code> </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01util_1_1Linked__hash__map_3_01K_00_01V_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; util::Linked_hash_map&lt; K, V &gt; &gt;</a></td><td class="desc">Traits of <a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" title="An object of this class is a map that combines the lookup speed of a boost::unordered_map&lt;&gt; and order...">flow::util::Linked_hash_map</a> </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Container__traits_3_01util_1_1Linked__hash__set_3_01T_00_01Hash_00_01Pred_01_4_01_4.html" target="_self">flow::util::Container_traits&lt; util::Linked_hash_set&lt; T, Hash, Pred &gt; &gt;</a></td><td class="desc">Traits of <a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" title="An object of this class is a set that combines the lookup speed of an unordered_set&lt;&gt; and ordering an...">flow::util::Linked_hash_set</a> </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Option__set_1_1Declare__options__func__args.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;::Declare_options_func_args</a></td><td class="desc">Internal-use structure to use with <a class="el" href="classflow_1_1cfg_1_1Option__set.html#ac6755bc762fc40b1ae8f4bd47c55bd39" title="Short-hand for the ever-important callback passed to the main Option_set constructor.">Declare_options_func</a> callback </td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Duration__set.html" target="_self">flow::perf::Duration_set</a></td><td class="desc">Convenience wrapper around an <code>array&lt;Duration, N&gt;</code>, which stores a duration for each of the N possible clock types in <a class="el" href="namespaceflow_1_1perf.html#ad61fb186191e4bb824d14601d11a2eb0" title="Clock types supported by flow::perf module facilities, perf::Checkpointing_timer in particular.">perf::Clock_type</a> </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Dynamic__cfg__context.html" target="_self">flow::cfg::Dynamic_cfg_context&lt; Root, Target, Target_ptr &gt;</a></td><td class="desc">Class which facilitates managing access to a dynamic configuration </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Final__validator__func.html" target="_self">flow::cfg::Final_validator_func&lt; Value_set &gt;</a></td><td class="desc">Utility/traits type to concisely work with final-validation functions when calling methods like <a class="el" href="classflow_1_1cfg_1_1Config__manager.html#a22bfec8082d0c7b5dff9ee7e98865707" title="Invoke this after construction to load the permanent set of static config from config sources includi...">Config_manager::apply_static()</a> </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1Function_3_01Result_07Args_8_8_8_08_4.html" target="_self">flow::Function&lt; Result(Args...)&gt;</a></td><td class="desc">Intended as the polymorphic function wrapper of choice for Flow, internally and externally; to be used instead of <code>std::function</code> or <code>boost::function</code> </td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structboost_1_1system_1_1is__error__code__enum_3_1_1flow_1_1net__flow_1_1error_1_1Code_01_4.html" target="_self">boost::system::is_error_code_enum&lt;::flow::net_flow::error::Code &gt;</a></td><td class="desc">Ummm &ndash; it specializes this <code>struct</code> to &ndash; look &ndash; the end result is <a class="el" href="namespaceboost_1_1system.html" title="We may add some ADL-based overloads into this namespace outside flow.">boost.system</a> uses this as authorization to make <code>enum</code> <code>Code</code> convertible to <code>Error_code</code> </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Key, Mapped, Hash, Pred &gt;</a></td><td class="desc">An object of this class is a map that combines the lookup speed of a <code>boost::unordered_map&lt;&gt;</code> and ordering and iterator stability capabilities of an <code>std::list&lt;&gt;</code> </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Event_type, Sockets &gt;</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__map.html" target="_self">flow::util::Linked_hash_map&lt; Sequence_number, boost::shared_ptr&lt; Sent_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" target="_self">flow::util::Linked_hash_set&lt; Key, Hash, Pred &gt;</a></td><td class="desc">An object of this class is a set that combines the lookup speed of an <code>unordered_set&lt;&gt;</code> and ordering and iterator stability capabilities of an <code>std::list&lt;&gt;</code> </td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Linked__hash__set.html" target="_self">flow::util::Linked_hash_set&lt; Peer_socket_ptr &gt;</a></td><td class="desc"></td></tr>
<tr id="row_23_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_23_" class="arrow" onclick="toggleFolder('23_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Log__context.html" target="_self">flow::log::Log_context</a></td><td class="desc">Convenience class that simply stores a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and/or <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> passed into a constructor; and returns this <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> via <a class="el" href="classflow_1_1log_1_1Log__context.html#af4db395042b065b00398cd59845dcb4d" title="Returns the stored Logger pointer, particularly as many FLOW_LOG_*() macros expect.">get_logger()</a> and <a class="el" href="classflow_1_1log_1_1Log__context.html#a8a5fef42dc2cedf3c0d1a6e83beb2948" title="Returns reference to the stored Component object, particularly as many FLOW_LOG_*() macros expect.">get_log_component()</a> public accessors </td></tr>
<tr id="row_23_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_23_0_" class="arrow" onclick="toggleFolder('23_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" target="_self">flow::cfg::Config_manager&lt; Value_set, Null_value_set &gt;</a></td><td class="desc"></td></tr>
<tr id="row_23_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Static__config__manager.html" target="_self">flow::cfg::Static_config_manager&lt; Value_set &gt;</a></td><td class="desc">A <code><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" title="Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of stat...">Config_manager</a></code>-related adapter-style class that manages a simple config setup involving a single (though arbitrarily complex) <code><a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a>&lt;&gt;</code>-ready raw value <code>struct</code> config store type <code>Value_set</code>, meant to be used only in static fashion </td></tr>
<tr id="row_23_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Cross__thread__task__loop.html" target="_self">flow::async::Cross_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that is able to efficiently schedule <code>Task</code>s within a given <code>Op</code> to execute in different threads while still properly avoiding concurrency </td></tr>
<tr id="row_23_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Op__list.html" target="_self">flow::async::Op_list</a></td><td class="desc">Simple, immutable <code>vector</code>-like sequence of N opaque <a class="el" href="namespaceflow_1_1async.html#a024042c64b7dc544a7a5587afa4b1949" title="An object of this opaque type represents a collection of 1 or more async::Task, past or future,...">async::Op</a> objects, usually corresponding to N worker threads, with typically used operations such as <code>[index]</code> and random <code>Op</code> selection </td></tr>
<tr id="row_23_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Segregated__thread__task__loop.html" target="_self">flow::async::Segregated_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that uses the legacy pin-<code>Task</code>s-within-1-<code>Op</code>-to-1-thread method of achieving required non-concurrency of <code>Task</code>s </td></tr>
<tr id="row_23_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_23_4_" class="arrow" onclick="toggleFolder('23_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" target="_self">flow::async::Single_thread_task_loop</a></td><td class="desc">A <code><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a></code>-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> impl that cuts out concepts that become irrelevant with only one thread involved </td></tr>
<tr id="row_23_4_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__single__thread__task__loop.html" target="_self">flow::async::Timed_single_thread_task_loop</a></td><td class="desc">Identical to <a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" title="A Concurrent_task_loop-related adapter-style class that represents a single-thread task loop; essenti...">Single_thread_task_loop</a>, but all tasks posted through it are automatically timed, with the result accessible via <a class="el" href="classflow_1_1async_1_1Timed__single__thread__task__loop.html#ae429fb31d17d422306cd9da398e53e5c" title="See Timed_concurrent_task_loop_impl::accumulated_time().">accumulated_time()</a> </td></tr>
<tr id="row_23_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Config__manager.html" target="_self">flow::cfg::Config_manager&lt; S_d_value_set &gt;</a></td><td class="desc">Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of static config and dynamic config, each, via that number of <code><a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a>&lt;&gt;</code>-ready raw value <code>struct</code> types supplied by the user as template arguments </td></tr>
<tr id="row_23_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;</a></td><td class="desc">The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type <code>Value_set</code>, a template argument to this class template </td></tr>
<tr id="row_23_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Async__file__logger.html" target="_self">flow::log::Async_file_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging </td></tr>
<tr id="row_23_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_23_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Net__env__simulator.html" target="_self">flow::net_flow::Net_env_simulator</a></td><td class="desc">Objects of this class can be fed to <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> to make it internally simulate network conditions like loss, latency, and data duplication </td></tr>
<tr id="row_23_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_23_10_" class="arrow" onclick="toggleFolder('23_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Node.html" target="_self">flow::net_flow::Node</a></td><td class="desc">An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer </td></tr>
<tr id="row_23_10_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Node.html" target="_self">flow::net_flow::asio::Node</a></td><td class="desc">A subclass of <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a> that adds the ability to easily and directly use <code><a class="el" href="namespaceflow_1_1net__flow.html" title="Flow module containing the API and implementation of the Flow network protocol, a TCP-inspired stream...">net_flow</a></code> sockets in general boost.asio event loops </td></tr>
<tr id="row_23_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_23_11_" class="arrow" onclick="toggleFolder('23_11_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_23_11_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Peer__socket.html" target="_self">flow::net_flow::asio::Peer_socket</a></td><td class="desc">A <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">net_flow::Peer_socket</a> that adds integration with boost.asio </td></tr>
<tr id="row_23_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_23_12_" class="arrow" onclick="toggleFolder('23_12_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_23_12_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1asio_1_1Server__socket.html" target="_self">flow::net_flow::asio::Server_socket</a></td><td class="desc">A <a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" title="A server socket able to listen on a single Flow port for incoming connections and return peer sockets...">net_flow::Server_socket</a> that adds integration with boost.asio </td></tr>
<tr id="row_23_13_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" target="_self">flow::perf::Checkpointing_timer</a></td><td class="desc">The central class in the <code>perf</code> Flow module, this efficiently times the user's operation, with a specified subset of timing methods; and with the optional ability to time intermediate <em>checkpoints</em> within the overall operation </td></tr>
<tr id="row_23_14_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer_1_1Aggregator.html" target="_self">flow::perf::Checkpointing_timer::Aggregator</a></td><td class="desc">This companion/inner class of <a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a> provides aggregation of results from many <code><a class="el" href="classflow_1_1perf_1_1Checkpointing__timer.html" title="The central class in the perf Flow module, this efficiently times the user&#39;s operation,...">Checkpointing_timer</a></code>s each measuring some user operation being repeated many times; particularly when the operation consists of multiple steps (checkpoints) of interest </td></tr>
<tr id="row_23_15_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" target="_self">flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;</a></td><td class="desc"><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off </td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Msg__metadata.html" target="_self">flow::log::Msg_metadata</a></td><td class="desc">Simple data store containing all of the information generated at every logging call site by <a class="el" href="namespaceflow_1_1log.html" title="Flow module providing logging functionality.">flow::log</a>, except the message itself, which is passed to <a class="el" href="classflow_1_1log_1_1Logger.html#a934667f16dd6ca0841e521296ab3a6e2" title="Given a message and its severity, logs that message and possibly severity WITHOUT checking whether it...">Logger::do_log()</a> assuming <a class="el" href="classflow_1_1log_1_1Logger.html#ac8a2e7a33fe3fbc0c29ead62ed98c022" title="Given attributes of a hypothetical message that would be logged, return true if that message should b...">Logger::should_log()</a> had returned <code>true</code> </td></tr>
<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Node__options.html" target="_self">flow::net_flow::Node_options</a></td><td class="desc">A set of low-level options affecting a single Flow <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a>, including <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects and other objects subsequently generated by that Flow <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> </td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1util_1_1Noncopyable.html" target="_self">flow::util::Noncopyable</a></td><td class="desc">Useful as a no-unique-address private member to make a type noncopyable while keeping that type an aggregate (can be direct-initialized) </td></tr>
<tr id="row_27_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_27_" class="arrow" onclick="toggleFolder('27_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Null__interface.html" target="_self">flow::util::Null_interface</a></td><td class="desc">An empty interface, consisting of nothing but a default <code>virtual</code> destructor, intended as a boiler-plate-reducing base for any other (presumably <code>virtual</code>-method-having) class that would otherwise require a default <code>virtual</code> destructor </td></tr>
<tr id="row_27_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_27_0_" class="arrow" onclick="toggleFolder('27_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" target="_self">flow::async::Concurrent_task_loop</a></td><td class="desc">The core <a class="el" href="namespaceflow_1_1async.html" title="Flow module containing tools enabling multi-threaded event loops operating under the asynchronous-tas...">flow::async</a> interface, providing an optionally multi-threaded thread pool onto which runnable <code>Task</code>s, optionally arranged into concurrency-avoiding <code>Op</code>s, can be boost.asio-posted for subsequent execution </td></tr>
<tr id="row_27_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_27_0_0_" class="arrow" onclick="toggleFolder('27_0_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; std::atomic&lt; perf::duration_rep_t &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_27_0_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop.html" target="_self">flow::async::Timed_concurrent_task_loop</a></td><td class="desc">Decorates a general &ndash; potentially multi-threaded &ndash; <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> of any kind but with timing capabilities </td></tr>
<tr id="row_27_0_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; perf::duration_rep_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_27_0_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Cross__thread__task__loop.html" target="_self">flow::async::Cross_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that is able to efficiently schedule <code>Task</code>s within a given <code>Op</code> to execute in different threads while still properly avoiding concurrency </td></tr>
<tr id="row_27_0_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Segregated__thread__task__loop.html" target="_self">flow::async::Segregated_thread_task_loop</a></td><td class="desc">Concrete <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> that uses the legacy pin-<code>Task</code>s-within-1-<code>Op</code>-to-1-thread method of achieving required non-concurrency of <code>Task</code>s </td></tr>
<tr id="row_27_0_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Timed__concurrent__task__loop__impl.html" target="_self">flow::async::Timed_concurrent_task_loop_impl&lt; Time_accumulator &gt;</a></td><td class="desc">Decorator of a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> with same or greater lifetime that accumulates time elapsed in any tasks posted or scheduled onto that loop </td></tr>
<tr id="row_27_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1async_1_1Single__thread__task__loop.html" target="_self">flow::async::Single_thread_task_loop</a></td><td class="desc">A <code><a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a></code>-related adapter-style class that represents a single-thread task loop; essentially it is pleasant syntactic sugar around a <a class="el" href="classflow_1_1async_1_1Concurrent__task__loop.html" title="The core flow::async interface, providing an optionally multi-threaded thread pool onto which runnabl...">Concurrent_task_loop</a> impl that cuts out concepts that become irrelevant with only one thread involved </td></tr>
<tr id="row_27_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_27_2_" class="arrow" onclick="toggleFolder('27_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Logger.html" target="_self">flow::log::Logger</a></td><td class="desc">Interface that the user should implement, passing the implementing <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> into logging classes (Flow's own classes like <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a>; and user's own logging classes) at construction (plus free/<code>static</code> logging functions) </td></tr>
<tr id="row_27_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Async__file__logger.html" target="_self">flow::log::Async_file_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to a given file-system path but never blocks any logging thread for file I/O; suitable for heavy-duty file logging </td></tr>
<tr id="row_27_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Buffer__logger.html" target="_self">flow::log::Buffer_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to an internal <code>std::string</code> buffer and provides read-only access to this buffer (for example, if one wants to write out its contents when exiting program) </td></tr>
<tr id="row_27_2_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Simple__ostream__logger.html" target="_self">flow::log::Simple_ostream_logger</a></td><td class="desc">An implementation of <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> that logs messages to the given <code>ostream</code>s (e.g., <code>cout</code> or an <code>ofstream</code> for a file) </td></tr>
<tr id="row_27_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Node.html" target="_self">flow::net_flow::Node</a></td><td class="desc">An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a distinct IP address and UDP port; and (2) it speaks the Flow protocol over a UDP transport layer </td></tr>
<tr id="row_27_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_27_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Config__manager_1_1On__dynamic__change__func__handle.html" target="_self">flow::cfg::Config_manager&lt; S_d_value_set &gt;::On_dynamic_change_func_handle</a></td><td class="desc">Opaque handle for managing a dynamic config change callback </td></tr>
<tr id="row_29_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_29_" class="arrow" onclick="toggleFolder('29_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set__base.html" target="_self">flow::cfg::Option_set_base</a></td><td class="desc">Un-templated base for <a class="el" href="classflow_1_1cfg_1_1Option__set.html" title="The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a giv...">Option_set</a> </td></tr>
<tr id="row_29_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1cfg_1_1Option__set.html" target="_self">flow::cfg::Option_set&lt; Value_set &gt;</a></td><td class="desc">The core config-parsing facility, which builds parsing/comparison/output capabilities on top of a given simple config-holding object, of the type <code>Value_set</code>, a template argument to this class template </td></tr>
<tr id="row_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Ostream__log__msg__writer.html" target="_self">flow::log::Ostream_log_msg_writer</a></td><td class="desc">Utility class, each object of which wraps a given <code>ostream</code> and outputs discrete messages to it adorned with time stamps and other formatting such as separating newlines </td></tr>
<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__info.html" target="_self">flow::net_flow::Peer_socket_info</a></td><td class="desc">A data store that keeps stats about the a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection </td></tr>
<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__options.html" target="_self">flow::net_flow::Peer_socket_options</a></td><td class="desc">A set of low-level options affecting a single <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" target="_self">flow::net_flow::Peer_socket_receive_stats</a></td><td class="desc">A data store that keeps stats about the incoming direction of a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection to another Flow-protocol <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_34_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__send__stats.html" target="_self">flow::net_flow::Peer_socket_send_stats</a></td><td class="desc">A data store that keeps stats about the outgoing direction of a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> connection to another Flow-protocol <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> </td></tr>
<tr id="row_35_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1net__flow_1_1Remote__endpoint.html" target="_self">flow::net_flow::Remote_endpoint</a></td><td class="desc">Represents the remote endpoint of a Flow-protocol connection; identifies the UDP endpoint of the remote <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> and the logical Flow-protocol port within that <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> </td></tr>
<tr id="row_36_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_36_" class="arrow" onclick="toggleFolder('36_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__base.html" target="_self">flow::util::Rnd_gen_uniform_range_base</a></td><td class="desc">Base class for <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" title="Simple, non-thread-safe uniform-range random number generator.">Rnd_gen_uniform_range</a> and <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" title="Identical to Rnd_gen_uniform_range but safe for concurrent RNG given a single object.">Rnd_gen_uniform_range_mt</a> for various aliases and similar, so template arguments need not be involved </td></tr>
<tr id="row_36_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_36_0_" class="arrow" onclick="toggleFolder('36_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_36_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" target="_self">flow::util::Rnd_gen_uniform_range_mt&lt; size_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_36_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; Peer_socket::security_token_t &gt;</a></td><td class="desc"></td></tr>
<tr id="row_36_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_36_2_" class="arrow" onclick="toggleFolder('36_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" target="_self">flow::util::Rnd_gen_uniform_range&lt; range_t &gt;</a></td><td class="desc">Simple, non-thread-safe uniform-range random number generator </td></tr>
<tr id="row_36_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range__mt.html" target="_self">flow::util::Rnd_gen_uniform_range_mt&lt; range_t &gt;</a></td><td class="desc">Identical to <a class="el" href="classflow_1_1util_1_1Rnd__gen__uniform__range.html" title="Simple, non-thread-safe uniform-range random number generator.">Rnd_gen_uniform_range</a> but safe for concurrent RNG given a single object </td></tr>
<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1error_1_1Runtime__error.html" target="_self">flow::error::Runtime_error</a></td><td class="desc">An <code>std::runtime_error</code> (which is an <code>std::exception</code>) that stores an <a class="el" href="namespaceflow.html#a29eaaa9d0fac4ce87d8b969222dbed09" title="Short-hand for a boost.system error code (which basically encapsulates an integer/enum error code and...">Error_code</a> </td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Scoped__setter.html" target="_self">flow::util::Scoped_setter&lt; Value &gt;</a></td><td class="desc">A simple RAII-pattern class template that, at construction, sets the specified location in memory to a specified value, memorizing the previous contents; and at destruction restores the value </td></tr>
<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; Target_ptr, Const_target_ptr &gt;</a></td><td class="desc">Convenience class template that endows the given subclass <code>T</code> with nested aliases <code>Ptr</code> and <code>Const_ptr</code> aliased to <code>shared_ptr&lt;T&gt;</code> and <code>shared_ptr&lt;const T&gt;</code> respectively </td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_40_" class="arrow" onclick="toggleFolder('40_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Event_set &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_40_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set.html" target="_self">flow::net_flow::Event_set</a></td><td class="desc">A user-set collection of sockets and desired conditions on those sockets (such as: "socket has data
to read"), with the ability to wait for those conditions to become true and signal the user when so </td></tr>
<tr id="row_41_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_41_" class="arrow" onclick="toggleFolder('41_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Null_value_set &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_41_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1cfg_1_1Null__value__set.html" target="_self">flow::cfg::Null_value_set</a></td><td class="desc">Empty <code>struct</code> suitable as a <code>*_value_set</code> template arg for <a class="el" href="classflow_1_1cfg_1_1Config__manager.html" title="Manages a config setup, intended for a single daemon process, by maintaining 1 or more set(s) of stat...">Config_manager</a>, when a slot requires a <code>Value_set</code>, but you have no config to actually parse there </td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_42_" class="arrow" onclick="toggleFolder('42_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_42_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" target="_self">flow::net_flow::Peer_socket</a></td><td class="desc">A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes and reliability support </td></tr>
<tr id="row_43_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket::Received_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_44_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Peer_socket::Sent_packet &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_45_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_45_" class="arrow" onclick="toggleFolder('45_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Shared__ptr__alias__holder.html" target="_self">flow::util::Shared_ptr_alias_holder&lt; boost::shared_ptr&lt; Server_socket &gt; &gt;</a></td><td class="desc"></td></tr>
<tr id="row_45_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Server__socket.html" target="_self">flow::net_flow::Server_socket</a></td><td class="desc">A server socket able to listen on a single Flow port for incoming connections and return peer sockets (<a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> objects) to the local user once such connections are established </td></tr>
<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set_1_1Socket__as__any__equals.html" target="_self">flow::net_flow::Event_set::Socket_as_any_equals</a></td><td class="desc">Equality predicate class used in storing various sockets of types wrapped as <code>boost::any</code>s in the <a class="el" href="classflow_1_1net__flow_1_1Event__set.html#a592b3ce6602051bd9994216041a3cbdc" title="A set of sockets of one type, used to communicate sets of desired and resulting events in various Eve...">Sockets</a> type </td></tr>
<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1net__flow_1_1Event__set_1_1Socket__as__any__hash.html" target="_self">flow::net_flow::Event_set::Socket_as_any_hash</a></td><td class="desc">Hasher class used in storing various sockets of types wrapped as <code>boost::any</code>s in the <a class="el" href="classflow_1_1net__flow_1_1Event__set.html#a592b3ce6602051bd9994216041a3cbdc" title="A set of sockets of one type, used to communicate sets of desired and resulting events in various Eve...">Sockets</a> type </td></tr>
<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1String__ostream.html" target="_self">flow::util::String_ostream</a></td><td class="desc">Similar to <code>ostringstream</code> but allows fast read-only access directly into the <code>std::string</code> being written; and some limited write access to that string </td></tr>
<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1log_1_1Async__file__logger_1_1Throttling__cfg.html" target="_self">flow::log::Async_file_logger::Throttling_cfg</a></td><td class="desc">Controls behavior of the throttling algorithm as described in <a class="el" href="classflow_1_1log_1_1Async__file__logger.html" title="An implementation of Logger that logs messages to a given file-system path but never blocks any loggi...">Async_file_logger</a> doc header Throttling section </td></tr>
<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflow_1_1perf_1_1Time__pt__set.html" target="_self">flow::perf::Time_pt_set</a></td><td class="desc">Convenience wrapper around an <code>array&lt;Time_pt, N&gt;</code>, which stores a time point for each of the N possible clock types in <a class="el" href="namespaceflow_1_1perf.html#ad61fb186191e4bb824d14601d11a2eb0" title="Clock types supported by flow::perf module facilities, perf::Checkpointing_timer in particular.">perf::Clock_type</a> </td></tr>
<tr id="row_51_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_51_" class="arrow" onclick="toggleFolder('51_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1util_1_1Unique__id__holder.html" target="_self">flow::util::Unique_id_holder</a></td><td class="desc">Each object of this class stores (at construction) and returns (on demand) a numeric ID unique from all other objects of the same class ever constructed, across all time from program start to end </td></tr>
<tr id="row_51_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Logger.html" target="_self">flow::log::Logger</a></td><td class="desc">Interface that the user should implement, passing the implementing <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> into logging classes (Flow's own classes like <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">net_flow::Node</a>; and user's own logging classes) at construction (plus free/<code>static</code> logging functions) </td></tr>
<tr id="row_52_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflow_1_1log_1_1Verbosity__config.html" target="_self">flow::log::Verbosity_config</a></td><td class="desc">Optional-use structure encapsulating a full set of verbosity config, such that one can parse it from a config source (like an options file) in concise form and apply it to a <a class="el" href="classflow_1_1log_1_1Config.html" title="Class used to configure the filtering and logging behavior of Loggers; its use in your custom Loggers...">log::Config</a> object </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 28 2025 22:55:33 for Flow by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
